:root{--bg: #0a0a0a;--surface: #141414;--surface2: #1e1e1e;--surface3: #282828;--border: #333;--accent: #e0e0e0;--accent2: #999;--text: #f0f0f0;--muted: #666;--danger: #c0392b;--success: #27ae60;--encrypted: #555;--tab-h: 56px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;height:100dvh;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent2)}*{scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;gap:1rem;padding:1rem}.login-screen h1{font-size:2rem;font-weight:300;letter-spacing:.05em}.login-screen p{color:var(--muted);text-align:center;font-size:.9rem}.login-screen form{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;width:100%;max-width:400px}.login-screen input{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.6rem 1rem;border-radius:6px;font-size:1rem;flex:1;min-width:160px}.login-screen input:focus{outline:none;border-color:var(--accent2)}.error{color:var(--danger);font-size:.85rem}.app{display:grid;grid-template-columns:200px 1fr 340px;height:100dvh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.sidebar h2{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.user-item{display:flex;flex-direction:column;gap:.4rem;padding:.6rem;background:var(--surface2);border-radius:6px;border:1px solid var(--border)}.user-item span{font-weight:500;font-size:.9rem}.user-item button{font-size:.75rem;padding:.3rem .6rem}.empty{color:var(--muted);font-size:.8rem}.main{display:flex;flex-direction:column;height:100dvh;min-width:0}.feed{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.4rem}.msg{padding:.5rem .8rem;border-radius:6px;font-size:.875rem;max-width:80%}.msg.system{color:var(--muted);font-style:italic;text-align:center;font-size:.78rem;padding:.25rem;max-width:100%;align-self:center}.msg.chat{background:var(--surface2);display:flex;flex-direction:column;gap:.2rem;border:1px solid var(--border)}.msg.chat.own{align-self:flex-end;border-right:2px solid var(--accent);border-left:none}.msg.chat.other{align-self:flex-start;border-left:2px solid var(--accent2);border-right:none}.msg.encrypted{background:var(--surface);border:1px dashed var(--encrypted);display:flex;flex-direction:column;gap:.2rem;align-self:flex-start;max-width:90%}.msg .nick{font-size:.72rem;color:var(--muted)}.msg .text{word-break:break-word}.msg .cipher{font-family:monospace;font-size:.72rem;color:var(--encrypted);word-break:break-all}.msg .label{font-size:.68rem;color:var(--muted);font-style:italic}.input-area{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--surface)}.input-area input{flex:1;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:.6rem 1rem;border-radius:6px;font-size:.9rem;min-width:0}.input-area input:focus{outline:none;border-color:var(--accent2)}.dh-panel{background:var(--surface);border-left:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.dh-panel h2{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.dh-step{background:var(--surface2);border-radius:8px;padding:.8rem;border:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem}.dh-step-header{display:flex;flex-direction:column;gap:.3rem}.dh-step-num{font-size:.68rem;text-transform:uppercase;color:var(--accent2);font-weight:600;letter-spacing:.1em}.dh-step-text{font-size:.83rem;line-height:1.4}.dh-toggle{font-size:.7rem;background:var(--surface3);color:var(--muted);padding:.25rem .5rem;border-radius:4px;align-self:flex-start;border:1px solid var(--border)}.dh-toggle:hover{color:var(--text)}.simple-step{display:flex;flex-direction:column;gap:.6rem}.simple-diagram{display:flex;align-items:flex-start;gap:.3rem;font-size:.76rem}.actor{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0}.actor-icon{font-size:1.1rem;text-align:center}.actor-name{text-align:center;font-weight:600;font-size:.78rem;color:var(--accent)}.actor-action{display:flex;flex-direction:column;gap:.2rem}.badge{padding:.25rem .4rem;border-radius:4px;font-size:.7rem;line-height:1.3;border:1px solid var(--border);background:var(--surface3);color:var(--text)}.arrow-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-width:56px;padding-top:1.4rem}.arrow{font-family:monospace;font-size:.62rem;color:var(--accent2);white-space:nowrap}.arrow-label{font-size:.58rem;color:var(--muted)}.pubkey-preview{font-family:monospace;font-size:.58rem;color:var(--muted);word-break:break-all;text-align:center}.simple-note{font-size:.73rem;color:var(--muted);line-height:1.4;background:var(--bg);padding:.4rem .6rem;border-radius:5px;border-left:2px solid var(--accent2)}.tech-detail{font-size:.76rem;display:flex;flex-direction:column;gap:.6rem;padding:.6rem;background:var(--bg);border-radius:6px;border:1px solid var(--border)}.tech-detail h4{color:var(--accent2);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.tech-detail table{width:100%;border-collapse:collapse}.tech-detail td{padding:.3rem .4rem;border-bottom:1px solid var(--border);vertical-align:top;font-size:.73rem}.tech-detail td:first-child{color:var(--muted);width:120px;white-space:nowrap}.tech-detail code{background:var(--surface2);padding:.1rem .3rem;border-radius:3px;font-size:.7rem;color:var(--accent)}.hex-val{font-family:monospace;font-size:.66rem;word-break:break-all}.hex-note{display:block;color:var(--muted);font-family:sans-serif;font-size:.65rem}.hex-block{font-family:monospace;font-size:.63rem;word-break:break-all;background:var(--surface2);padding:.4rem;border-radius:5px;color:var(--accent2);max-height:80px;overflow-y:auto;border:1px solid var(--border)}.tech-note{color:var(--muted);line-height:1.4}button{background:var(--surface3);color:var(--text);border:1px solid var(--border);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .15s,border-color .15s}button:hover{background:var(--surface2);border-color:var(--accent2)}button.accept{background:var(--success);color:#fff;border-color:var(--success)}button.accept:hover{opacity:.85}button.decline{background:var(--danger);color:#fff;border-color:var(--danger)}button.decline:hover{opacity:.85}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.invite-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem;max-width:340px;width:100%;display:flex;flex-direction:column;gap:1rem}.invite-box h3{font-size:1rem;font-weight:500}.invite-actions{display:flex;gap:.75rem}.tab-bar{display:none}@media (max-width: 700px){.app{display:flex!important;flex-direction:column;height:100dvh}.sidebar{display:none;position:fixed;top:0;left:0;right:0;bottom:var(--tab-h);z-index:10;border:none;padding:1rem;flex-direction:column;gap:.75rem;overflow-y:auto}.dh-panel{display:none;position:fixed;top:0;left:0;right:0;bottom:var(--tab-h);z-index:10;border:none;padding:1rem;flex-direction:column;gap:1rem;overflow-y:auto}.sidebar.active,.dh-panel.active{display:flex}.main{flex:1;height:100dvh;padding-bottom:var(--tab-h);min-height:0;display:flex;flex-direction:column}.main.hidden{display:none!important}.msg{max-width:90%}.input-area{padding:.5rem .75rem}.tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--tab-h);background:var(--surface);border-top:1px solid var(--border);z-index:20}.tab-bar button{flex:1;background:transparent;color:var(--muted);border:none;border-right:1px solid var(--border);border-radius:0;font-size:.68rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.4rem}.tab-bar button:last-child{border-right:none}.tab-bar button:hover{background:var(--surface2);color:var(--text)}.tab-bar button.active{color:var(--text);border-top:2px solid var(--accent);background:var(--surface2)}.tab-bar button .tab-icon{font-size:1.2rem;line-height:1}}
