*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1e1e1e;--text-primary: #ffffff;--text-secondary: #a0a0a0;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--danger-hover: #dc2626;--success: #22c55e;--border: #2a2a2a;--message-own: #1e3a5f;--message-other: #1e1e1e}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}.container{max-width:800px;margin:0 auto;padding:2rem;min-height:100vh;display:flex;flex-direction:column}header{text-align:center;margin-bottom:3rem}header h1{font-size:3rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,var(--accent),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{color:var(--text-secondary);font-size:1.1rem}.home{flex:1;display:flex;flex-direction:column;align-items:center;gap:2rem}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;width:100%;margin-bottom:1rem}.feature{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center}.feature .icon{font-size:2rem;display:block;margin-bottom:.75rem}.feature h3{font-size:1rem;margin-bottom:.5rem}.feature p{color:var(--text-secondary);font-size:.875rem}.btn-primary{background:var(--accent);color:#fff;border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:var(--bg-secondary)}.btn-danger{background:var(--danger);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-danger:hover{background:var(--danger-hover)}.btn-icon{background:transparent;border:none;font-size:1.25rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s}.btn-icon:hover{background:var(--bg-tertiary)}.btn-text{background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:color .2s,background .2s}.btn-text:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-text-danger:hover{color:var(--danger)}.btn-close{background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary)}.join-section{text-align:center;margin-top:1rem}.join-section p{color:var(--text-secondary);margin-bottom:1rem}.join-form{display:flex;gap:.5rem;max-width:400px}.join-form input{flex:1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:.9rem}.join-form input:focus{outline:none;border-color:var(--accent)}footer{text-align:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--text-secondary);font-size:.875rem}.github-link{display:inline-block;margin-top:.75rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:6px;transition:color .2s,border-color .2s}.github-link:hover{color:var(--text-primary);border-color:var(--text-secondary)}.chat-container{height:100vh;display:flex;flex-direction:column}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:1rem}.logo{font-size:1.25rem;font-weight:700;color:var(--accent);text-decoration:none}.room-status{font-size:.875rem;color:var(--text-secondary)}.room-status.connected{color:var(--success)}.room-status.error{color:var(--danger)}.header-right{display:flex;align-items:center;gap:.5rem}.expires-at{font-size:.75rem;color:var(--text-secondary);margin-right:.5rem}.error-banner{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:var(--danger);color:#fff}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.message{max-width:70%;padding:.75rem 1rem;border-radius:12px;word-wrap:break-word}.message.own{align-self:flex-end;background:var(--message-own)}.message.other{align-self:flex-start;background:var(--message-other)}.message.system{align-self:center;background:transparent;color:var(--text-secondary);font-size:.875rem;font-style:italic}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;gap:1rem}.message-header-right{display:flex;align-items:center;gap:.5rem}.message-sender{font-weight:600;font-size:.875rem;color:var(--accent);display:flex;align-items:center;gap:.35rem}.message-fingerprint{font-size:.7rem;color:var(--text-secondary);font-weight:400;font-family:monospace}.verify-icon{font-size:.7rem;font-weight:700}.verify-icon.verified{color:var(--success)}.verify-icon.unverified{color:var(--danger)}.my-fingerprint{font-size:.75rem;color:var(--text-secondary);font-family:monospace;font-weight:400}.message-time{font-size:.75rem;color:var(--text-secondary)}.message-lock{background:none;border:none;cursor:pointer;font-size:.75rem;padding:0;opacity:.6;transition:opacity .2s}.message-lock:hover{opacity:1}.message-content{font-size:.9375rem}.message-cipher{margin-top:.5rem;padding:.5rem;background:#0000004d;border-radius:6px;border:1px dashed var(--border)}.cipher-label{font-size:.7rem;color:var(--text-secondary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.cipher-text{font-family:monospace;font-size:.7rem;color:var(--text-secondary);word-break:break-all;line-height:1.4}.message-error{color:var(--danger);font-style:italic}.message.sending{opacity:.7}.message.failed{border-left:3px solid var(--danger)}.message-status{font-size:.7rem;color:var(--text-secondary);margin-right:.5rem}.message-status.error{color:var(--danger);cursor:pointer}.chat-input{padding:1rem 1.5rem;background:var(--bg-secondary);border-top:1px solid var(--border)}.nickname-section,.message-section{display:flex;align-items:center;gap:.75rem}.nickname-section input,.message-section input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:1rem}.nickname-section input:focus,.message-section input:focus{outline:none;border-color:var(--accent)}.current-nickname{font-weight:600;color:var(--accent);white-space:nowrap}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.5rem;max-width:400px;width:90%}.modal-content h3{margin-bottom:.5rem}.modal-content p{color:var(--text-secondary);margin-bottom:1rem}.modal-input{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:1rem;margin-bottom:1.5rem}.modal-input:focus{outline:none;border-color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border)}.welcome-guide{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;margin:auto;max-width:400px}.welcome-guide .welcome-icon{font-size:3rem;margin-bottom:1rem}.welcome-guide h2{font-size:1.5rem;margin-bottom:.75rem;color:var(--text-primary)}.welcome-guide p{color:var(--text-secondary);margin-bottom:.5rem;line-height:1.6}.welcome-guide .welcome-hint{font-size:.875rem;margin-bottom:1.5rem}.welcome-guide .btn-primary{margin-top:.5rem}@media (max-width: 600px){.container{padding:1rem}header h1{font-size:2rem}.features{grid-template-columns:1fr}.message{max-width:85%}.join-form{flex-direction:column}}
