:root{--bg:#f4f7f9;--surface:#fff;--surface-muted:#edf3f6;--text:#14212b;--muted:#5c6c78;--border:#d7e1e7;--accent:#0f6f7f;--accent-strong:#0a5360;--shadow:0 18px 44px #18304024;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:8px;min-height:48px;padding:0 18px}button:hover:not(:disabled){background:var(--accent-strong)}button:disabled{color:#8a99a3;cursor:not-allowed;background:#dce5ea}input{border:1px solid var(--border);width:100%;min-height:54px;color:var(--text);background:#fff;border-radius:8px;padding:0 14px;font-size:1.05rem}input:focus{border-color:var(--accent);outline:3px solid #0f6f7f29}h1,p{margin:0}#app{min-height:100svh}.app-shell{place-items:center;min-height:100svh;padding:18px;display:grid}.join-screen,.room-screen{width:min(100%,460px)}.join-screen{gap:24px;display:grid}.brand{color:var(--accent);letter-spacing:0;text-align:center;font-size:2.2rem;font-weight:800}.join-form{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:10px;gap:12px;padding:18px;display:grid}.room-label{color:var(--muted);font-size:.9rem;font-weight:700}.room-input{text-transform:lowercase}.join-button{width:100%}.status-text{min-height:1.5rem;color:var(--muted);text-align:center}.room-screen{gap:16px;display:grid}.room-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;margin-bottom:2px;font-size:.8rem;font-weight:700}.room-header h1{overflow-wrap:anywhere;font-size:1.8rem;line-height:1.1}.leave-button{min-height:42px;color:var(--text);background:var(--surface-muted);flex:none}.leave-button:hover{background:#dce7ec}.room-status{gap:10px;display:grid}.room-status>div{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.room-status span{color:var(--muted)}.room-status strong{text-align:right}@media (width>=720px){.app-shell{padding:32px}.brand{font-size:2.8rem}}
