:root{--bg-1:#eef2ff;--bg-2:#f8fafc;--bg-3:#fce7f3;--card:rgba(255,255,255,0.85);--ink:#0f172a;--muted:#64748b;--accent:#6366f1;--accent-2:#8b5cf6;--accent-ink:#ffffff;--line:rgba(15,23,42,0.08);--shadow:0 20px 50px -20px rgba(79,70,229,0.45);--radius:20px}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,var(--bg-3),transparent 60%),radial-gradient(1000px 500px at 110% 10%,var(--bg-1),transparent 55%),linear-gradient(160deg,var(--bg-2),#ffffff);min-height:100%;align-items:center;justify-content:center;padding:24px}.wrap,body{display:flex}.wrap{width:100%;max-width:560px;flex-direction:column;gap:14px}.card{background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px}.brand{font-weight:700;letter-spacing:-.01em;font-size:15px;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px}h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;margin:0 0 12px}h2{font-size:22px;letter-spacing:-.01em;margin:0 0 6px}.muted{color:var(--muted);margin:0;line-height:1.5}.hint,.small{font-size:13px}.hint{color:var(--muted);margin:14px 0 0}.hint.error{color:#dc2626;font-weight:600;margin-top:10px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;padding:11px 18px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:transform .06s ease,box-shadow .2s ease,opacity .2s ease;color:var(--ink);background:#fff}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:var(--accent-ink);box-shadow:0 10px 24px -10px rgba(99,102,241,.7)}.btn.ghost{background:rgba(255,255,255,.6);border-color:var(--line)}.btn.lg{width:100%;padding:15px 20px;font-size:16px;margin-top:22px}.btn.sm{padding:8px 12px;font-size:13px}.btn:disabled{opacity:.6;cursor:default}.result{display:none;margin-top:22px}.result.show{display:block;animation:pop .25s ease}.share-row{display:flex;gap:8px}.share input,.share-row input{flex:1 1;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 13px;font-size:14px;color:var(--ink);min-width:0}.actions{display:flex;gap:10px;margin-top:12px}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.gate{text-align:center}.gate form{margin-top:18px;display:flex;flex-direction:column;gap:12px}.gate input{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 15px;font-size:16px}.gate input,.lock{text-align:center}.lock .brand{margin-bottom:18px}.lock-badge{width:56px;height:56px;margin:0 auto 16px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 14px 30px -12px rgba(99,102,241,.75)}.lock-badge svg{width:26px;height:26px;display:block}.lock form{margin-top:22px;display:flex;flex-direction:column;gap:12px}.pass-field{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.9);border-radius:14px;padding:16px 15px;font-size:24px;font-weight:600;color:var(--ink);text-align:center;letter-spacing:.6em;text-indent:.6em;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.pass-field::placeholder{font-size:15px;font-weight:500;letter-spacing:normal;color:var(--muted)}.pass-field:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 4px rgba(99,102,241,.16)}.pass-field.bad{border-color:#f87171;box-shadow:0 0 0 4px rgba(248,113,113,.16);animation:shake .32s ease}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}.lock .btn.lg{margin-top:4px}.history{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}.history-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.history-head h2{font-size:15px;margin:0;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.room{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.65);transition:border-color .15s ease,background .15s ease}.room:hover{background:#fff;border-color:rgba(99,102,241,.35)}.room-main{min-width:0}.room-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:600;display:flex;align-items:center;gap:7px}.dot{width:7px;height:7px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.room-meta{margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-actions{display:flex;gap:6px;flex:none}.btn.icon{padding:8px 10px;font-size:16px;line-height:1;color:var(--muted)}.btn.icon:hover{color:#dc2626;border-color:rgba(220,38,38,.35)}@media (max-width:520px){.room{flex-direction:column;align-items:stretch}.room-actions{justify-content:flex-end}}.chat{padding:0;overflow:hidden;display:flex;flex-direction:column;height:min(85vh,700px)}.chat-head{justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.6)}.chat-head,.chat-head .share{display:flex;align-items:center}.chat-head .share{gap:6px;max-width:56%}.chat-head .share input{font-size:12px;padding:7px 9px}.banner{background:#fff7ed;color:#9a3412;font-size:13px;text-align:center;padding:6px;border-bottom:1px solid var(--line)}.messages{flex:1 1;overflow-y:auto;padding:18px;gap:12px}.messages,.msg{display:flex;flex-direction:column}.msg{max-width:78%}.msg.mine{align-self:flex-end;align-items:flex-end}.msg.theirs{align-self:flex-start;align-items:flex-start}.who{font-size:12px;color:var(--muted);margin:0 4px 3px;font-weight:600}.bubble{padding:10px 14px;border-radius:16px;line-height:1.4;font-size:15px;word-wrap:break-word;white-space:pre-wrap}.msg.mine .bubble{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;border-bottom-right-radius:5px}.msg.theirs .bubble{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}.time{font-size:11px;color:var(--muted);margin:4px 4px 0}.msg-form{display:flex;gap:8px;padding:14px;border-top:1px solid var(--line);background:rgba(255,255,255,.6)}.msg-form input{flex:1 1;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;font-size:15px;min-width:0}.fatal,.foot{text-align:center}.foot{color:var(--muted);font-size:12px}@media (max-width:520px){.card{padding:26px}h1{font-size:24px}.chat-head .share{display:none}}