:root{--bg:#0f1419;--panel:#1a2129;--panel-2:#222b36;--text:#e6edf3;--muted:#8b98a5;--accent:#2f81f7;--accent-2:#1f6feb;--error:#f85149;--border:#2d3742}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.center{place-items:center;min-height:100dvh;padding:1rem;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:.75rem;width:100%;max-width:360px;padding:2rem;display:flex}.card h1{margin:0;font-size:1.6rem}input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.7rem .85rem;font-size:1rem}input:focus{border-color:var(--accent);outline:none}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.7rem 1rem;font-size:1rem}button:hover:not(:disabled){background:var(--accent-2)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{border:1px solid var(--border);color:var(--text);background:0 0;padding:.45rem .8rem;font-size:.9rem}button.ghost.danger{color:var(--error);border-color:#f8514966}button.ghost.danger:hover:not(:disabled){background:#f851491f}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:var(--error);background:#f851491a;border:1px solid #f851494d;border-radius:8px;padding:.5rem .7rem;font-size:.9rem}.app{max-width:640px;margin:0 auto;padding:1.25rem}header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.row{gap:.5rem;display:flex}.newchat{gap:.5rem;margin:1.25rem 0 .5rem;display:flex}.newchat input{flex:1}.newchat button{white-space:nowrap}.status{background:var(--panel-2);border:1px solid var(--border);word-break:break-all;border-radius:8px;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.9rem}section{margin-top:1.5rem}section h2{color:var(--muted);font-size:1rem;font-weight:600}ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}li{background:var(--panel);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.avatar{background:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.avatar.pending{background:var(--muted)}.name{font-weight:600}.grow{flex:1;min-width:0}.grow .small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}li.clickable{cursor:pointer}li.clickable:hover{border-color:var(--accent)}.chevron{color:var(--muted);font-size:1.4rem;line-height:1}.badge{color:#fff;background:#e53e3e;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}li .row button{padding:.4rem .7rem;font-size:.85rem}.browser-notice{background:var(--panel-2);color:var(--text);border:1px solid var(--accent);border-left:4px solid var(--accent);cursor:pointer;border-radius:8px;margin:.5rem .75rem 0;padding:.6rem .85rem;font-size:.9rem}.browser-app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;width:100%;max-width:none;height:100dvh;margin:0;padding:0;display:flex}.browser-app input{-webkit-user-select:text;user-select:text}.browser-app header{gap:.5rem;padding:.5rem .75rem}.browser-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:1.1rem;overflow:hidden}@media (width<=440px){.browser-title{font-size:0}}.browser-headbtn{white-space:nowrap;padding:.5rem .9rem;font-size:1rem}@media (width<=600px){.browser-app header{gap:.3rem}.browser-app header .hdr-label{display:none}.browser-headbtn,.browser-app header>.ghost{padding:.55rem .7rem;font-size:1.15rem}}.browser-toolbar.collapsed{display:none}.browser-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.browser-navbtn{background:var(--panel-2);border:1px solid var(--border);width:3rem;height:3rem;color:var(--text);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.7rem;font-weight:700;line-height:1;display:inline-flex}.browser-navbtn:hover:not(:disabled){background:var(--panel);border-color:var(--accent)}.browser-navbtn:active:not(:disabled){background:var(--accent);color:#fff}.browser-navbtn:disabled{opacity:.35;cursor:not-allowed}.browser-toolbar form{flex:16rem;gap:.5rem;min-width:0;display:flex}.browser-toolbar input{flex:1;min-width:0;height:3rem}.browser-toolbar form button{height:3rem;padding:0 1.2rem;font-size:1rem}.browser-stage{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#1b1b1b;flex:1;min-height:0;position:relative;overflow:hidden}.browser-loadbar{opacity:0;z-index:7;pointer-events:none;will-change:width, opacity;background:#e53935;border-radius:0 2px 2px 0;width:0;height:3px;position:absolute;top:0;left:0;box-shadow:0 0 6px #e53935bf}.browser-stage canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline:none;width:100%;height:100%;display:block}.browser-kbcapture{opacity:0;pointer-events:none;z-index:-1;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;bottom:0;left:0}.browser-tap-layer{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.browser-tap{border:2px solid var(--accent);will-change:transform, opacity;background:radial-gradient(circle,#ffffff8c 0%,#78aaff4d 45%,#78aaff00 70%);border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;animation:.52s cubic-bezier(.22,.61,.36,1) forwards browser-tap-ripple;position:absolute;box-shadow:0 0 0 1px #00000040}@keyframes browser-tap-ripple{0%{opacity:.95;transform:scale(.28)}60%{opacity:.6}to{opacity:0;transform:scale(1.7)}}@media (prefers-reduced-motion:reduce){.browser-tap{animation-duration:.26s}@keyframes browser-tap-ripple{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1)}}}.browser-scrollbar-wrap{z-index:5;touch-action:none;flex-direction:column;width:22px;height:100%;display:flex;position:absolute;top:0;right:0}.browser-scroll-arrow{color:#fff;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#0000004d;border:none;border-left:1px solid #00000040;flex:none;justify-content:center;align-items:center;width:100%;height:30px;margin:0;padding:0;font-size:16px;line-height:1;display:flex}.browser-scroll-arrow:hover{background:#00000073}.browser-scroll-arrow:active{background:var(--accent)}.browser-scrollbar{cursor:pointer;touch-action:none;background:#0000002e;border-left:1px solid #00000040;flex:auto;width:100%;min-height:0;position:relative}.browser-scrollbar-thumb{background:var(--accent);cursor:grab;touch-action:none;border-radius:9px;width:18px;min-height:28px;position:absolute;right:2px;box-shadow:0 0 0 1px #00000059,inset 0 0 0 1px #ffffff40}.browser-scrollbar-thumb:hover{background:var(--accent-2)}.browser-scrollbar-thumb:active{background:var(--accent-2);cursor:grabbing}.browser-scrollbar-wrap.dragging{width:32px}.browser-scrollbar-wrap.dragging .browser-scrollbar{background:#00000047}.browser-scrollbar-wrap.dragging .browser-scrollbar-thumb{background:var(--accent-2);width:30px;box-shadow:0 0 0 2px #00000073,inset 0 0 0 1px #fff6}.browser-scroll-bubble{background:var(--accent-2);color:#fff;letter-spacing:.02em;pointer-events:none;white-space:nowrap;z-index:6;border-radius:1.75rem;justify-content:center;align-items:center;min-width:3.25rem;height:3.25rem;padding:0 .65rem;font-size:1.05rem;font-weight:700;display:flex;position:absolute;right:32px;transform:translateY(-50%);box-shadow:0 3px 14px #00000073}.app.chat{flex-direction:column;height:100dvh;padding-bottom:0;display:flex}.messages{flex-direction:column;flex:1;gap:.4rem;padding:1rem 0;display:flex;overflow-y:auto}.center-text{text-align:center;margin:auto}.bubble{word-wrap:break-word;white-space:pre-wrap;border-radius:14px;max-width:75%;padding:.55rem .8rem}.bubble.mine{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.theirs{background:var(--panel-2);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.composer{gap:.5rem;padding:.75rem 0;display:flex}.composer input{flex:1}
