:root{--bg:#fff;--bg-subtle:#fafafa;--bg-muted:#f5f5f5;--bg-hover:#f0f0f0;--bg-active:#e8e8e8;--text:#000;--text-muted:#666;--text-faint:#999;--border:#ddd;--border-dark:#ccc;--border-hover:#bbb;--overlay:#ffffffb3}:root[data-theme=dark]{--bg:#1a1a1a;--bg-subtle:#242424;--bg-muted:#2a2a2a;--bg-hover:#333;--bg-active:#3a3a3a;--text:#e0e0e0;--text-muted:#aaa;--text-faint:#888;--border:#444;--border-dark:#555;--border-hover:#666;--overlay:#000000b3}body{background:var(--bg);color:var(--text);margin:1em;font-family:system-ui,sans-serif;font-size:14px}hr{border:none;border-top:1px solid var(--border);width:100%;margin:1em 0}#app{box-sizing:border-box;width:100%;max-width:600px;margin:0 auto}.landing{text-align:center}.crow{text-align:left;font-family:monospace;font-size:8px;line-height:1;display:inline-block}.mobile-title{margin:0;display:none}.subtitle{margin-top:0;margin-bottom:0}.actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5em;display:flex}.footer-links{flex-direction:column;align-items:center;gap:.35em;display:flex;position:fixed;bottom:1em;left:50%;transform:translate(-50%)}.footer-links a{color:var(--text-muted);text-decoration:underline}.source-toggle{cursor:pointer}.source-links{gap:1em;display:none}.source-links.visible{display:flex}.theme-toggle{position:fixed;bottom:1em;left:1em}.theme-toggle a{color:var(--text-muted);cursor:pointer;text-decoration:underline}.actions .or{color:var(--text-faint)}.actions button,.actions input{border:1px solid var(--border-dark);font-family:inherit;font-size:inherit;color:var(--text);padding:.6em 1.2em;transition:border-color .15s,background-color .15s}.actions button{background:var(--bg-subtle);cursor:pointer}.actions button:hover{background:var(--bg-hover);border-color:var(--border-hover)}.actions button:active{background:var(--bg-active)}.actions input{background:var(--bg);outline:none}.chat{height:90vh;flex-direction:column;height:90dvh;display:flex}.chat-info{border-bottom:1px solid var(--border);color:var(--text-faint);cursor:pointer;margin-bottom:.75em;padding-bottom:.75em}.chat-info-full{font-style:italic;line-height:1.4}.chat-info-collapsed,.chat-info.collapsed .chat-info-full{display:none}.chat-info.collapsed .chat-info-collapsed{display:block}.chat-info p{margin:0 0 .75em}.chat-info p:last-child{margin-bottom:0}.copy-link{cursor:pointer;text-decoration:underline}.messages{flex-direction:column;flex:1;display:flex;overflow-y:auto}.messages .empty{color:var(--text-faint);padding:1em}.message{line-height:1.4;display:flex}.message .peer{text-align:right;width:70px;color:var(--text-muted);border-right:1px solid var(--border);flex-shrink:0;padding-right:8px}.message.system .peer{display:none}.message.system{justify-content:center}.message.system .text{color:var(--text-faint);text-align:center;width:100%;padding-left:0;font-style:italic}.message.notification .peer,.message.notification .text{color:var(--text-faint)}.message.color-unverified .peer,.message.color-unverified .text{color:#999}.message.color-black .peer{color:#000}.message.color-gray .peer{color:#666}.message.color-silver .peer{color:#888}.message.color-maroon .peer{color:maroon}.message.color-red .peer{color:#c00}.message.color-olive .peer{color:olive}.message.color-green .peer{color:green}.message.color-lime .peer{color:#32cd32}.message.color-navy .peer{color:navy}.message.color-blue .peer{color:#06c}.message.color-teal .peer{color:teal}.message.color-cyan .peer{color:#00a0a0}.message.color-purple .peer{color:purple}.message.color-magenta .peer{color:#c0c}.message.color-orange .peer{color:#c60}.message.color-gold .peer{color:#b8860b}.message .text{flex:1;padding-left:10px}.typing-indicator .text{color:var(--text-faint)}.chat-input{border-top:1px solid var(--border);gap:.5em;margin-top:.75em;padding-top:.75em;display:flex}.chat-input input{border:1px solid var(--border-dark);font-family:inherit;font-size:inherit;background:var(--bg);color:var(--text);outline:none;flex:1;padding:.6em}.chat-input button{border:1px solid var(--border-dark);background:var(--bg-subtle);color:var(--text);cursor:pointer;font-family:inherit;font-size:inherit;padding:.6em 1.2em;transition:border-color .15s,background-color .15s}.chat-input button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.chat-input button:active:not(:disabled){background:var(--bg-active)}.chat-input button:disabled,.chat-input input:disabled{opacity:.5;cursor:not-allowed}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:.5em;padding-bottom:.5em;display:flex}.peers-list{font-style:normal}.status-text{color:var(--text-faint)}.peer-item{cursor:pointer}.color-unverified{color:#999}.color-black{color:#000}.color-gray{color:#666}.color-silver{color:#888}.color-maroon{color:maroon}.color-red{color:#c00}.color-olive{color:olive}.color-green{color:green}.color-lime{color:#32cd32}.color-navy{color:navy}.color-blue{color:#06c}.color-teal{color:teal}.color-cyan{color:#00a0a0}.color-purple{color:purple}.color-magenta{color:#c0c}.color-orange{color:#c60}.color-gold{color:#b8860b}.verification-overlay{background:var(--overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.verification-panel{background:var(--bg);border:1px solid var(--border);width:90%;max-width:360px;padding:1.25em}.verification-header{justify-content:flex-end;margin-bottom:1em;display:flex}.close-link{border:1px solid var(--border-dark);background:var(--bg-subtle);color:var(--text);cursor:pointer;padding:.4em .8em}.close-link:hover{background:var(--bg-hover);border-color:var(--border-hover)}.verification-info{background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-muted);margin-bottom:1em;padding:.75em;font-size:.9em}.password-input{border:1px solid var(--border-dark);width:100%;font-family:inherit;font-size:inherit;background:var(--bg);color:var(--text);box-sizing:border-box;margin-bottom:.75em;padding:.6em}.password-input:focus{border-color:var(--border-hover);outline:none}.password-error{color:#c00;margin-bottom:.75em;font-size:.9em}:root[data-theme=dark] .password-error{color:#f66}.safety-number{letter-spacing:.1em;background:var(--bg-subtle);border:1px solid var(--border);text-align:center;margin-bottom:1em;padding:1em;font-family:monospace;font-size:1.2em}.verification-actions{flex-wrap:wrap;gap:.5em;display:flex}.action-link{border:1px solid var(--border-dark);background:var(--bg-subtle);color:var(--text);cursor:pointer;padding:.5em 1em}.action-link:hover{background:var(--bg-hover);border-color:var(--border-hover)}.verified-text{color:green;padding:.5em 1em}.qr-display{text-align:center;border:1px solid var(--border);margin-top:1em;padding:1em}.qr-display img{max-width:200px}.qr-scanner{margin-top:1em}.qr-scanner video{border:1px solid var(--border);background:#000;width:100%;max-height:250px}.qr-scanner .action-link{text-align:center;margin-top:.5em;display:block}:root[data-theme=dark] .color-unverified{color:#777}:root[data-theme=dark] .color-black{color:#e0e0e0}:root[data-theme=dark] .color-gray{color:#aaa}:root[data-theme=dark] .color-silver{color:#ccc}:root[data-theme=dark] .color-maroon{color:#f66}:root[data-theme=dark] .color-navy{color:#69f}:root[data-theme=dark] .color-green{color:#6c6}:root[data-theme=dark] .color-olive{color:#cc6}:root[data-theme=dark] .color-purple{color:#c6c}:root[data-theme=dark] .color-teal{color:#6cc}:root[data-theme=dark] .message.color-unverified .peer,:root[data-theme=dark] .message.color-unverified .text{color:#777}:root[data-theme=dark] .message.color-black .peer{color:#e0e0e0}:root[data-theme=dark] .message.color-gray .peer{color:#aaa}:root[data-theme=dark] .message.color-silver .peer{color:#ccc}:root[data-theme=dark] .message.color-maroon .peer{color:#f66}:root[data-theme=dark] .message.color-navy .peer{color:#69f}:root[data-theme=dark] .message.color-green .peer{color:#6c6}:root[data-theme=dark] .message.color-olive .peer{color:#cc6}:root[data-theme=dark] .message.color-purple .peer{color:#c6c}:root[data-theme=dark] .message.color-teal .peer{color:#6cc}:root[data-theme=dark] .verified-text{color:#6c6}.chat-header-left{flex:1;min-width:0}@media (max-width:480px){body{height:100vh;height:100dvh;margin:0;overflow:hidden}.landing{min-height:100vh;box-sizing:border-box;flex-direction:column;justify-content:center;min-height:100dvh;padding:.5em;display:flex}.crow{display:none}.mobile-title{margin:0;display:block}.actions{flex-direction:column;width:100%}.actions .or{display:none}.actions input,.actions button{box-sizing:border-box;width:100%;font-size:16px}.chat{height:100vh;box-sizing:border-box;height:100dvh;padding:.5em;overflow:hidden}.chat-header,.chat-input{flex-shrink:0}.messages{-webkit-overflow-scrolling:touch}.chat-input input,.chat-input button{font-size:16px}.message .peer{text-overflow:ellipsis;white-space:nowrap;width:60px;padding-right:5px;overflow:hidden}.message .text{overflow-wrap:break-word;min-width:0;padding-left:6px}.footer-links{bottom:.5em}.theme-toggle{display:none}.verification-panel{width:95%;padding:1em}.safety-number{letter-spacing:.05em;word-break:break-all;padding:.75em;font-size:1em}.verification-actions{flex-direction:column}.verification-actions .action-link,.verification-actions .verified-text{text-align:center;box-sizing:border-box;width:100%}.password-input{font-size:16px}}.sandbox{max-width:700px;margin:0 auto}.sandbox-controls{border-bottom:1px solid var(--border);align-items:center;gap:1em;margin-bottom:1em;padding:1em;display:flex}.sandbox-controls select{border:1px solid var(--border-dark);background:var(--bg);color:var(--text);font-family:inherit;font-size:inherit;padding:.5em}.sandbox-controls a{color:var(--text-muted);cursor:pointer;text-decoration:underline}.sandbox-preview{border:1px dashed var(--border);min-height:400px;padding:1em}
