:root{--bg: #0b0e14;--panel: #11151f;--panel-2: #161b27;--border: #232a3a;--text: #d7dce5;--muted: #8a93a6;--accent: #5cc8ff;--accent-2: #7ee787;--danger: #ff7b72;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 12px;cursor:pointer}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#06121c;border-color:var(--accent);font-weight:600}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font:inherit;width:100%}textarea{resize:vertical;font-family:var(--mono)}.app{display:grid;grid-template-columns:280px 1fr;height:100%}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sidebar h1{font-size:16px;margin:16px;letter-spacing:.5px}.sidebar h1 small{color:var(--muted);font-weight:400;display:block;font-size:11px}.room-list{overflow-y:auto;flex:1;padding:8px}.room-item{padding:10px;border-radius:6px;cursor:pointer;border:1px solid transparent}.room-item:hover{background:var(--panel-2)}.room-item.active{background:var(--panel-2);border-color:var(--accent)}.room-item .id{color:var(--muted);font-family:var(--mono);font-size:11px}.sidebar-actions{padding:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.main{display:flex;flex-direction:column;min-height:0}.room-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.room-header .lock{color:var(--accent-2)}.room-header .lock.locked{color:var(--danger)}.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.msg{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;max-width:820px}.msg .meta{display:flex;gap:8px;align-items:baseline;color:var(--muted);font-size:12px;margin-bottom:4px}.msg .handle{color:var(--accent);font-weight:600}.msg.undecryptable{border-color:var(--danger)}.msg.undecryptable .body{color:var(--danger);font-family:var(--mono);font-size:12px;word-break:break-all}.msg .body :first-child{margin-top:0}.msg .body :last-child{margin-bottom:0}.msg .body pre{background:var(--bg);padding:10px;border-radius:6px;overflow-x:auto}.msg .body code{font-family:var(--mono)}.msg .actions{margin-top:6px;display:flex;gap:8px}.msg .actions button{padding:2px 8px;font-size:12px}.file-chip{display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.composer{border-top:1px solid var(--border);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.composer .row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1}.center{display:flex;align-items:center;justify-content:center;height:100%}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px;width:360px}.card h2{margin-top:0}.card .field{margin-bottom:12px}.card label{display:block;color:var(--muted);margin-bottom:4px;font-size:12px}.error{color:var(--danger);font-size:13px}.muted{color:var(--muted)}.banner{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px;margin:16px}.mono{font-family:var(--mono)}.spacer{flex:1}.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline}
